CPU 686
BITS 32

%define EOI 20h
%define PIC1_CMD 20h
%define TICKS_PER_STEP 20

section .data

global _time_tick
_time_tick dd 0
_seg_count dd 1000

contador dd TICKS_PER_STEP ; usar para contar os segundos
extern _novo_step
extern _segundos_actualizados

section .bss

section .text
global _t0_isr
_t0_isr:
	pusha
	
	inc dword [_time_tick]
	dec dword [contador]
	jnz ignorar
	mov dword [contador], TICKS_PER_STEP
	mov dword [_novo_step], 1
	
	ignorar:
	dec dword [_seg_count]
	jnz fim
	mov dword [_seg_count], 1000
	mov dword [_segundos_actualizados], 1

	fim:
	mov al, EOI
	out PIC1_CMD, al
	
	popa
	iretd
END
